PlaylistManagement [C#]
This example shows how to retrive groups playlists and medias from specific manager, and how to add a new media to playlist.
[C#]//Initialize the XAML object and retrieve group from server by login public PlaylistManagement(string login, string password) { InitializeComponent(); //Login and retrive group List<View_Group> listResult; sample.GetGroup(out listResult, login, password); //Bind group to tree treeGroup.ItemsSource = TreeNode.GetTreeNode(listResult); }
[C#]
//Select group and retrive coresponding medias and playlist private void treeGroup_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e) { //Get Medias for specific group List<View_Media> listMediaResult; sample.GetMedia(out listMediaResult, (treeGroup.SelectedItem as TreeNode).Id??0); //Update media thumbnail path listMediaResult.ForEach(x => x.ThumbnailPath = (x.ThumbnailPath != null) ? (GlobalParam.MEDIA_URL + x.ThumbnailPath) : ""); //Bind media to List gridMedia.ItemsSource = listMediaResult; //Get Playlist for specific group List<View_Playlist> listPlaylistResult; sample.GetPlaylist(out listPlaylistResult, (new long[] {(treeGroup.SelectedItem as TreeNode).Id ?? 0}).ToList()); //Bind playlist to List gridPlaylist.ItemsSource = listPlaylistResult; }
[C#]
//Select playlist and retrive coresponding playlist medias private void gridPlaylist_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (gridPlaylist.SelectedItem == null) return; //Get Playlist media from selected playlist List<View_PlaylistComponent> listResult; sample.GetPlaylistMedia(out listResult, (treeGroup.SelectedItem as TreeNode).Id ?? 0, (gridPlaylist.SelectedItem as View_Playlist).Id); //Update media thumbnail path listResult.ForEach(x => x.ThumbnailPath = (x.ThumbnailPath != null) ? (GlobalParam.MEDIA_URL + x.ThumbnailPath) : ""); //Bind media to List gridPlComponent.ItemsSource = new ObservableCollection<View_PlaylistComponent>(listResult); }
[C#]
//Drop media to playlist private void gridPlComponent_Drop(object sender, DragEventArgs e) { if (gridPlaylist.SelectedItem == null) return; //Retrive list of playlist media ListBox box = (ListBox)sender; ObservableCollection<View_PlaylistComponent> list = (box.ItemsSource as ObservableCollection<View_PlaylistComponent>); //Retrive media to drop View_Media media = e.Data.GetData(typeof(View_Media)) as View_Media; //Get media position Point pnt = e.GetPosition(box); ScrollViewer scroll = VisualTreeHelper.GetChild(VisualTreeHelper.GetChild(box, 0), 0) as ScrollViewer; int position = Math.Min(list.Count, (int)(scroll.VerticalOffset + (pnt.Y / 48))); //Create playlist media data View_PlaylistComponent component = new View_PlaylistComponent() { //Active = media.Active, //Duration = media.Duration, //HideBanner = media.HideBanner, ManagerIdAddedBy = media.ManagerIdAddedBy, MediaId = media.Id, MediaName = media.Name, //MediaPath = media.MediaPath, NoBanner = true, Order = position, //PeriodCount = media.periodCount ?? 0, PlaylistId = (gridPlaylist.SelectedItem as View_Playlist).Id, ThumbnailPath = media.ThumbnailPath, TypeId = 1 }; //Add playlist media sample.AddPlaylistMedia(ref component, (treeGroup.SelectedItem as TreeNode).Id ?? 0); //Insert result in the collection list.Insert(position, component); }